package ws;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;

import org.orm.PersistentTransaction;

import com.google.gson.Gson;

import api.ContextObject;
import api.Log;

/**
 * @author Manu
 *
 */

public class LogSOA {

	/**
	 * Ingresa nuevo log al registro
	 * 
	 * @param evento
	 * @param fechaInicio
	 * @param fechaTermino
	 * @return respuesta. Si alguna variable es nula retorna -5
	 */
	public String add(String evento, Date fechaInicio, Date fechaTermino) {
		String respuesta = "";
		/*
		 * Validar que vengan los parametros
		 */
		if ((evento.length() > 0 && evento.replace(" ", "") != "")
				|| (fechaInicio == null) || (fechaTermino == null)) {
			/*
			 * Obtener duracion del evento
			 */
			long tiempofi = fechaInicio.getTime();
			long tiempoft = fechaTermino.getTime();
			String tiempo = String.valueOf(tiempoft - tiempofi);
			/*
			 * Uso de facade
			 */
			api.ContextObject context = new ContextObject();
			respuesta = context.oLog.add(evento, fechaInicio, fechaTermino, tiempo);
		} else {
			/*
			 * -5 faltan parametro obligatorio en ws
			 */
			respuesta = "-5";
		}
		return respuesta;

	}

	/**
	 * Busca todos los log y los retorna como json. Si no encuentra log retorna 1
	 * 
	 * @return json
	 */
	public static String getAll() {
		String json = null;
		Collection<SOAPVO.LogSOAPVO> coleccionLogSOAPVO = new ArrayList<SOAPVO.LogSOAPVO>();
		api.Log apiLog = new Log();
		orm.Tcr_log[] ormLog = apiLog.getAll();
		/*
		 * si no se encontraron registros
		 */
		if (ormLog.length == 0) {
			json = "1";
		} else {
			/*
			 * si se encontraron registros
			 * Uso de patron compositive
			 */
			for (int i = 0; i < ormLog.length; i++) {
				SOAPVO.LogSOAPVO objeto = SOAPVO.LogSOAPVO
						.crearLogSOAPVO(ormLog[i]);
				coleccionLogSOAPVO.add(objeto);
			}// fin guardando resultados
			Gson gson = new Gson();
			json = gson.toJson(coleccionLogSOAPVO);
		}
		return json;
	}

}
